# -*- coding: utf-8 -*-
# @Time    : 2024/1/7 21:25
# @Author  : micah
# @File    : 5.使用xpath完成数据提取.py
# @Software: PyCharm

import requests
from lxml import etree  # pip install lxml


url = 'https://movie.douban.com/top250'
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

response = requests.get(url, headers=headers).text

# 需要将页面返回的数据打包成一个对象: element
# Element对象支持xpath语法
tree = etree.HTML(response)
# 如果需要提取标签中的文本信息, 则需要使用text()进行提取
title_list = tree.xpath("//div[@class='hd']/a/span[1]/text()")  # 返回的类型是一个列表
print(title_list)

image_list = tree.xpath('//div[@class="pic"]/a/img/@src')
print(image_list)

"""
1.在页面中获取对应的标签可以直接使用 // 查询页面中存在的标签
2.如果当前标签中不存在class等属性那么可以考虑提取当前这个标签的父标签: div/img
3.如果想要根据标签中的属性去提取指定的标签可以使用: //div[@class="pic"]
4.如果想要获取标签中的文本数据一定要加上: text()
5.如果想要获取标签中的属性值, 提取img标签中的src的值: //div[@class="pic"]/a/img/@src
"""



